package com.cmj.service;

import com.cmj.domain.ResponseResult;
import com.cmj.domain.dto.UserDto;
import com.cmj.domain.dto.UserStatusDto;
import com.cmj.domain.entity.User;
import com.cmj.domain.vo.UserNewVo;

/**
 * 用户表(User)表服务接口
 *
 * @author makejava
 * @since 2022-03-15 11:17:49
 */
public interface UserService {

    /***
     * 根据用户id获取用户信息
     * @return 用户信息
     */
    ResponseResult userInfo();

    /**
     * 更新用户信息
     * @param user 用户表单
     * @return 操作结果
     */
    ResponseResult updateUserInfo(User user);

    /**
     * 注册服务接口
     * @param user{
     *   "email": "string",
     *   "nickName": "string",
     *   "password": "string",
     *   "userName": "string"
     * }
     * @return 操作结果
     */
    ResponseResult register(User user);

    ResponseResult<UserNewVo> getUserList(Integer pageNum, Integer pageSize, UserDto userDto);

    ResponseResult getUser(Long id);

    ResponseResult delUser(Long[] ids);

    ResponseResult addUser(User user);

    ResponseResult changeStatus(UserStatusDto userStatusDto);

    ResponseResult updateUser(User user);
}
